home *** CD-ROM | disk | FTP | other *** search
/ Aminet 44 / Aminet 44 (2001)(GTI - Schatztruhe)[!][Aug 2001].iso / Aminet / dev / gui / gtlayout.lha / Source / gtlayout.h < prev    next >
C/C++ Source or Header  |  1999-10-11  |  21KB  |  695 lines

  1. /*
  2. **    $VER: gtlayout.h 47.1 (11.10.1999)
  3. **    GadTools layout toolkit
  4. **
  5. **    Copyright © 1993-1999 by Olaf `Olsen' Barthel
  6. **        Freely distributable.
  7. */
  8.  
  9. #ifndef _GTLAYOUT_H
  10. #define _GTLAYOUT_H
  11.  
  12.  
  13. /*****************************************************************************/
  14.  
  15.  
  16. #ifndef INTUITION_GADGETCLASS_H
  17. #include <intuition/gadgetclass.h>
  18. #endif    /* !INTUITION_GADGETCLASS_H */
  19.  
  20. #ifndef LIBRARIES_GADTOOLS_H
  21. #include <libraries/gadtools.h>
  22. #endif    /* !LIBRARIES_GADTOOLS_H */
  23.  
  24.  
  25. /*****************************************************************************/
  26.  
  27.  
  28. /* Kinds of objects supported in addition to the normal GadTools kinds */
  29. #define HORIZONTAL_KIND    45
  30. #define VERTICAL_KIND    46
  31. #define END_KIND    47
  32. #define FRAME_KIND    48
  33. #define BOX_KIND    49
  34. #define FRACTION_KIND    50
  35. #define XBAR_KIND    51
  36. #define YBAR_KIND    52
  37. #define PASSWORD_KIND    53
  38. #define GAUGE_KIND    54
  39. #define TAPEDECK_KIND    55
  40. #define LEVEL_KIND    56
  41. #define BOOPSI_KIND    57
  42. #define POPUP_KIND    58
  43. #define TAB_KIND    59
  44. #define BLANK_KIND    60
  45. #define IMAGE_KIND    61
  46. #define TEXTEDIT_KIND    62
  47.  
  48.  
  49. /*****************************************************************************/
  50.  
  51.  
  52. /* Where to place a gadget label */
  53. enum
  54. {
  55.     PLACE_Left,
  56.     PLACE_Right,
  57.     PLACE_Above,
  58.     PLACE_In,
  59.     PLACE_Below
  60. };
  61.  
  62. /* How to align text lines in BOX_KIND gadgets */
  63. enum
  64. {
  65.     ALIGNTEXT_Left,
  66.     ALIGNTEXT_Centered,
  67.     ALIGNTEXT_Right,
  68.     ALIGNTEXT_Pad
  69. };
  70.  
  71. /* The button images available for TAPEDECK_KIND gadgets. */
  72. enum
  73. {
  74.     TDBT_Backward,
  75.     TDBT_Forward,
  76.     TDBT_Previous,
  77.     TDBT_Next,
  78.     TDBT_Stop,
  79.     TDBT_Pause,
  80.     TDBT_Record,
  81.     TDBT_Rewind,
  82.     TDBT_Eject,
  83.     TDBT_Play,
  84.  
  85.     TDBTLAST
  86. };
  87.  
  88. /* The frame types for groups. */
  89. enum
  90. {
  91.     FRAMETYPE_None,
  92.     FRAMETYPE_Label,
  93.     FRAMETYPE_Tab
  94. };
  95.  
  96. /* How to align the window opened by LT_Build() on the screen. */
  97. #define ALIGNF_Right        (1 << 0)
  98. #define ALIGNF_Left        (1 << 1)
  99. #define ALIGNF_Top        (1 << 2)
  100. #define ALIGNF_Bottom        (1 << 3)
  101. #define ALIGNF_ExtraRight    (1 << 4)
  102. #define ALIGNF_ExtraLeft    (1 << 5)
  103. #define ALIGNF_ExtraTop        (1 << 6)
  104. #define ALIGNF_ExtraBottom    (1 << 7)
  105.  
  106.  
  107. /*****************************************************************************/
  108.  
  109.  
  110. /* Generic tags, applicable for several object types */
  111. #define LA_Chars        TAG_USER+2
  112. #define LA_LabelPlace        TAG_USER+3
  113. #define LA_ExtraSpace        TAG_USER+4
  114. #define LA_NoKey        TAG_USER+30
  115. #define LA_HighLabel        TAG_USER+31
  116. #define LA_LabelText        TAG_USER+37
  117. #define LA_LabelID        TAG_USER+38
  118. #define LA_ID            TAG_USER+39
  119. #define LA_Type            TAG_USER+40
  120. #define LA_PageSelector        TAG_USER+79
  121. #define LA_LabelChars        TAG_USER+107
  122. #define LA_DefaultSize        TAG_USER+170
  123. #define LA_LayoutSpace        TAG_USER+189
  124.  
  125. /* Storage type tags */
  126. #define LA_BYTE            TAG_USER+63
  127. #define LA_UBYTE        TAG_USER+64
  128. #define LA_WORD            TAG_USER+65
  129. #define LA_BOOL            TAG_USER+65
  130. #define LA_UWORD        TAG_USER+66
  131. #define LA_LONG            TAG_USER+67
  132. #define LA_ULONG        TAG_USER+68
  133. #define LA_STRPTR        TAG_USER+69
  134.  
  135. /* for use with LT_GetAttributes() only */
  136. #define LA_Left            TAG_USER+16
  137. #define LA_Top            TAG_USER+17
  138. #define LA_Width        TAG_USER+18
  139. #define LA_Height        TAG_USER+19
  140. #define LA_LabelLeft        TAG_USER+114
  141. #define LA_LabelTop        TAG_USER+115
  142.  
  143. /* BOOPSI_KIND */
  144. #define LABO_TagCurrent        TAG_USER+119
  145. #define LABO_TagTextAttr    TAG_USER+120
  146. #define LABO_TagDrawInfo    TAG_USER+121
  147. #define LABO_TagLink        TAG_USER+129
  148. #define LABO_TagScreen        TAG_USER+132
  149. #define LABO_Link        LALV_Link
  150. #define LABO_ClassInstance    TAG_USER+122
  151. #define LABO_ClassName        TAG_USER+123
  152. #define LABO_ClassLibraryName    TAG_USER+124
  153. #define LABO_ExactWidth        TAG_USER+127
  154. #define LABO_ExactHeight    TAG_USER+128
  155. #define LABO_RelFontHeight    TAG_USER+131
  156. #define LABO_Object        TAG_USER+133
  157. #define LABO_FullWidth        TAG_USER+135
  158. #define LABO_FullHeight        TAG_USER+136
  159. #define LABO_ActivateHook    TAG_USER+141
  160.  
  161. /* BOX_KIND */
  162. #define LABX_Labels        TAG_USER+12
  163. #define LABX_Lines        TAG_USER+13
  164. #define LABX_Chars        TAG_USER+2
  165. #define LABX_Rows        TAG_USER+1
  166. #define LABX_Index        TAG_USER+14
  167. #define LABX_Text        TAG_USER+15
  168. #define LABX_AlignText        TAG_USER+27
  169. #define LABX_DrawBox        TAG_USER+11
  170. #define LABX_FirstLabel        TAG_USER+44
  171. #define LABX_LastLabel        TAG_USER+45
  172. #define LABX_ReserveSpace    TAG_USER+72
  173. #define LABX_LabelTable        TAG_USER+98
  174. #define LABX_FirstLine        TAG_USER+152
  175. #define LABX_LastLine        TAG_USER+153
  176. #define LABX_LineTable        TAG_USER+156
  177. #define LABX_Line        TAG_USER+161
  178. #define LABX_LineID        TAG_USER+162
  179. #define LABX_TextPen        TAG_USER+172
  180. #define LABX_BackPen        TAG_USER+173
  181. #define LABX_Spacing        TAG_USER+180
  182.  
  183. /* BUTTON_KIND */
  184. #define LABT_ReturnKey        TAG_USER+34
  185. #define LABT_DefaultButton    TAG_USER+34
  186. #define LABT_EscKey        TAG_USER+56
  187. #define LABT_ExtraFat        TAG_USER+29
  188. #define LABT_Lines        TAG_USER+140
  189. #define LABT_FirstLine        TAG_USER+44
  190. #define LABT_LastLine        TAG_USER+45
  191. #define LABT_DefaultCorrection    TAG_USER+145
  192. #define LABT_Smaller        TAG_USER+147
  193.  
  194. /* CYCLE_KIND */
  195. #define LACY_FirstLabel        TAG_USER+44
  196. #define LACY_LastLabel        TAG_USER+45
  197. #define LACY_LabelTable        TAG_USER+98
  198. #define LACY_AutoPageID        TAG_USER+103
  199. #define LACY_TabKey        TAG_USER+118
  200.  
  201. /* FRACTION_KIND */
  202. #define LAFR_IncrementerHook    TAG_USER+85
  203.  
  204. /* FRAME_KIND */
  205. #define LAFR_InnerWidth        TAG_USER+9
  206. #define LAFR_InnerHeight    TAG_USER+10
  207. #define LAFR_DrawBox        TAG_USER+11
  208. #define LAFR_RefreshHook    TAG_USER+117
  209. #define LAFR_GenerateEvents    TAG_USER+155
  210. #define LAFR_ResizeX        LALV_ResizeX
  211. #define LAFR_ResizeY        LALV_ResizeY
  212.  
  213. /* GAUGE_KIND */
  214. #define LAGA_Percent        TAG_USER+36
  215. #define LAGA_InfoLength        TAG_USER+70
  216. #define LAGA_InfoText        TAG_USER+71
  217. #define LAGA_NoTicks        TAG_USER+143
  218. #define LAGA_Discrete        TAG_USER+144
  219. #define LAGA_Tenth        TAG_USER+144
  220.  
  221. /* IMAGE_KIND */
  222. #define LAIM_Image        TAG_USER+181
  223. #define LAIM_BitMap        TAG_USER+182
  224. #define LAIM_BitMapLeft        TAG_USER+183
  225. #define LAIM_BitMapTop        TAG_USER+184
  226. #define LAIM_BitMapWidth    TAG_USER+185
  227. #define LAIM_BitMapHeight    TAG_USER+186
  228. #define LAIM_BitMapMask        TAG_USER+187
  229.  
  230. /* INTEGER_KIND */
  231. #define LAIN_LastGadget        TAG_USER+28
  232. #define LAIN_Min        TAG_USER+23
  233. #define LAIN_Max        TAG_USER+24
  234. #define LAIN_UseIncrementers    TAG_USER+57
  235. #define LAIN_Incrementers    TAG_USER+57
  236. #define LAIN_HistoryLines    TAG_USER+59
  237. #define LAIN_HistoryHook    TAG_USER+80
  238. #define LAIN_IncrementerHook    TAG_USER+85
  239. #define LAIN_Activate        TAG_USER+148
  240.  
  241. /* LISTVIEW_KIND */
  242. #define LALV_ExtraLabels    TAG_USER+26
  243. #define LALV_Labels        TAG_USER+33
  244. #define LALV_CursorKey        TAG_USER+35
  245. #define LALV_Columns        TAG_USER+2
  246. #define LALV_Lines        TAG_USER+1
  247. #define LALV_Link        TAG_USER+7
  248. #define LALV_FirstLabel        TAG_USER+44
  249. #define LALV_LastLabel        TAG_USER+45
  250. #define LALV_MaxGrowX        TAG_USER+77
  251. #define LALV_MaxGrowY        TAG_USER+78
  252. #define LALV_LabelTable        TAG_USER+98
  253. #define LALV_LockSize        TAG_USER+106
  254. #define LALV_ResizeX        TAG_USER+109
  255. #define LALV_ResizeY        TAG_USER+110
  256. #define LALV_MinChars        TAG_USER+111
  257. #define LALV_MinLines        TAG_USER+112
  258. #define LALV_FlushLabelLeft    TAG_USER+113
  259. #define LALV_TextAttr        TAG_USER+138
  260. #define LALV_AutoPageID        TAG_USER+103
  261. #define LALV_Selected        TAG_USER+167
  262. #define LALV_AdjustForString    TAG_USER+174
  263.  
  264. /* LEVEL_KIND */
  265. #define LAVL_Min        GTSL_Min
  266. #define LAVL_Max        GTSL_Max
  267. #define LAVL_Level        GTSL_Level
  268. #define LAVL_LevelFormat    GTSL_LevelFormat
  269. #define LAVL_LevelPlace        GTSL_LevelPlace
  270. #define LAVL_DispFunc        GTSL_DispFunc
  271. #define LAVL_FullCheck        LASL_FullCheck
  272. #define LAVL_Freedom        TAG_USER+177    /* (I)  New in V41 */
  273. #define LAVL_Ticks        TAG_USER+178    /* (I)  New in V41 */
  274. #define LAVL_NumTicks        TAG_USER+179    /* (IS) New in V41 */
  275. #define LAVL_Lines        TAG_USER+1
  276.  
  277. /* MX_KIND */
  278. #define LAMX_FirstLabel        TAG_USER+44
  279. #define LAMX_LastLabel        TAG_USER+45
  280. #define LAMX_LabelTable        TAG_USER+98
  281. #define LAMX_TabKey        TAG_USER+118
  282. #define LAMX_AutoPageID        TAG_USER+103
  283.  
  284. /* PALETTE_KIND */
  285. #define LAPA_SmallPalette    TAG_USER+32
  286. #define LAPA_Lines        TAG_USER+1
  287. #define LAPA_UsePicker        TAG_USER+137
  288. #define LAPA_Picker        TAG_USER+137
  289.  
  290. /* PASSWORD_KIND */
  291. #define LAPW_String             GTST_String
  292. #define LAPW_LastGadget        TAG_USER+28
  293. #define LAPW_HistoryLines    TAG_USER+59
  294. #define LAPW_HistoryHook    TAG_USER+80
  295. #define LAPW_Activate        TAG_USER+148
  296. #define LAPW_MaxChars        GTST_MaxChars
  297.  
  298. /* POPUP_KIND */
  299. #define LAPU_FirstLabel        TAG_USER+44
  300. #define LAPU_LastLabel        TAG_USER+45
  301. #define LAPU_LabelTable        TAG_USER+98
  302. #define LAPU_AutoPageID        TAG_USER+103
  303. #define LAPU_TabKey        TAG_USER+118
  304. #define LAPU_Labels        GTCY_Labels
  305. #define LAPU_Active        GTCY_Active
  306. #define LAPU_CentreActive    TAG_USER+163
  307.  
  308. /* SLIDER_KIND */
  309. #define LASL_FullCheck        TAG_USER+22
  310.  
  311. /* SCROLLER_KIND */
  312. #define LASC_Thin        TAG_USER+62
  313. #define LASC_FullSize        TAG_USER+188
  314.  
  315. /* STRING_KIND */
  316. #define LAST_LastGadget        TAG_USER+28
  317. #define LAST_Link        TAG_USER+7
  318. #define LAST_Picker        TAG_USER+5
  319. #define LAST_UsePicker        TAG_USER+5
  320. #define LAST_HistoryLines    TAG_USER+59
  321. #define LAST_HistoryHook    TAG_USER+80
  322. #define LAST_CursorPosition    TAG_USER+105
  323. #define LAST_Activate        TAG_USER+148
  324. #define LAST_ValidateHook    TAG_USER+165
  325.  
  326. /* TAB_KIND */
  327. #define LATB_FirstLabel        TAG_USER+44
  328. #define LATB_LastLabel        TAG_USER+45
  329. #define LATB_LabelTable        TAG_USER+98
  330. #define LATB_AutoPageID        TAG_USER+103
  331. #define LATB_TabKey        TAG_USER+118
  332. #define LATB_Labels        GTCY_Labels
  333. #define LATB_Active        GTCY_Active
  334. #define LATB_FullWidth        TAG_USER+149
  335. #define LATB_FullSize        TAG_USER+149
  336.  
  337. /* TAPEDECK_KIND */
  338. #define LATD_ButtonType        TAG_USER+86
  339. #define LATD_Toggle        TAG_USER+87
  340. #define LATD_Pressed        TAG_USER+88
  341. #define LATD_Smaller        TAG_USER+89
  342. #define LATD_Tick        TAG_USER+139
  343.  
  344. /* TEXT_KIND */
  345. #define LATX_Picker        TAG_USER+5
  346. #define LATX_UsePicker        TAG_USER+5
  347. #define LATX_LockSize        TAG_USER+106
  348.  
  349. /* TEXTEDIT_KIND */
  350. #define LATE_String        GTST_String
  351. #define LATE_CursorPosition    STRINGA_BufferPos
  352. #define LATE_Chars        LA_Chars
  353. #define LATE_Lines        LABX_Rows
  354. #define LATE_TextAttr        LALV_TextAttr
  355.  
  356. /* VERTICAL_KIND and HORIZONTAL_KIND */
  357. #define LAGR_Spread        TAG_USER+6
  358. #define LAGR_SameSize        TAG_USER+8
  359. #define LAGR_LastAttributes    TAG_USER+46
  360. #define LAGR_ActivePage        TAG_USER+58
  361. #define LAGR_Frame        TAG_USER+104
  362. #define LAGR_IndentX        TAG_USER+130
  363. #define LAGR_IndentY        TAG_USER+134
  364. #define LAGR_NoIndent        TAG_USER+146
  365. #define LAGR_SameWidth        TAG_USER+150
  366. #define LAGR_SameHeight        TAG_USER+151
  367. #define LAGR_FrameGroup        TAG_USER+168
  368. #define LAGR_AlignRight        TAG_USER+171
  369.  
  370. /* XBAR_KIND */
  371. #define LAXB_FullSize        TAG_USER+50
  372. #define LAXB_FullWidth        TAG_USER+50
  373.  
  374. /* Applicable for layout handle only */
  375. #define LAHN_TextAttr        TAG_USER+41
  376. #define LAHN_AutoActivate    TAG_USER+42
  377. #define LAHN_LocaleHook        TAG_USER+4
  378. #define LAHN_CloningPermitted    TAG_USER+61
  379. #define LAHN_EditHook        TAG_USER+74
  380. #define LAHN_ExactClone        TAG_USER+75
  381. #define LAHN_MenuGlyphs        TAG_USER+76
  382. #define LAHN_Parent        TAG_USER+83
  383. #define LAHN_BlockParent    TAG_USER+84
  384. #define LAHN_SimpleClone    TAG_USER+90
  385. #define LAHN_ExitFlush        TAG_USER+108
  386. #define LAHN_UserData        TAG_USER+116
  387. #define LAHN_RawKeyFilter    TAG_USER+142
  388. #define LAHN_DontPickShortcuts    TAG_USER+154
  389. #define LAHN_NoKeys        TAG_USER+154
  390. #define LAHN_PubScreen        TAG_USER+157
  391. #define LAHN_PubScreenName    TAG_USER+158
  392. #define LAHN_PubScreenFallBack    TAG_USER+159
  393. #define LAHN_CloneScreenTitle    TAG_USER+175
  394. #define LAHN_CloneScreenTitleID    TAG_USER+176
  395. #define LAHN_TopGroupType    TAG_USER+190
  396.  
  397. /* Applicable for menus only. */
  398. #define LAMN_FirstLabel        LABX_FirstLabel
  399. #define LAMN_LastLabel        LABX_LastLabel
  400. #define LAMN_LabelTable        TAG_USER+98
  401. #define LAMN_TitleText        TAG_USER+17000
  402. #define LAMN_TitleID        TAG_USER+17001
  403. #define LAMN_ItemText        TAG_USER+17002
  404. #define LAMN_ItemID        TAG_USER+17003
  405. #define LAMN_SubText        TAG_USER+17004
  406. #define LAMN_SubID        TAG_USER+17005
  407. #define LAMN_KeyText        TAG_USER+17006
  408. #define LAMN_KeyID        TAG_USER+17007
  409. #define LAMN_CommandText    TAG_USER+17008
  410. #define LAMN_CommandID        TAG_USER+17009
  411. #define LAMN_MutualExclude    TAG_USER+17010
  412. #define LAMN_UserData        TAG_USER+17011
  413. #define LAMN_Disabled        TAG_USER+17012
  414. #define LAMN_CheckIt        TAG_USER+17013
  415. #define LAMN_Checked        TAG_USER+17014
  416. #define LAMN_Toggle        TAG_USER+17015
  417. #define LAMN_Code        TAG_USER+17016
  418. #define LAMN_Qualifier        TAG_USER+17017
  419. #define LAMN_Char        TAG_USER+17018
  420. #define LAMN_ID            TAG_USER+17019
  421. #define LAMN_AmigaGlyph        TAG_USER+17020
  422. #define LAMN_CheckmarkGlyph    TAG_USER+17021
  423. #define LAMN_Error        TAG_USER+17022
  424. #define LAMN_Screen        TAG_USER+17023
  425. #define LAMN_TextAttr        TAG_USER+17024
  426. #define LAMN_LayoutHandle    TAG_USER+17025
  427. #define LAMN_Handle        TAG_USER+17025
  428. #define LAMN_ExtraSpace        TAG_USER+17026
  429. #define LAMN_FullMenuNum    TAG_USER+160
  430.  
  431. /* Applicable for window only */
  432. #define LAWN_Menu        TAG_USER+25
  433. #define LAWN_UserPort        TAG_USER+47
  434. #define LAWN_Left        TAG_USER+48
  435. #define LAWN_Top        TAG_USER+49
  436. #define LAWN_Zoom        TAG_USER+50
  437. #define LAWN_MaxPen        TAG_USER+52
  438. #define LAWN_BelowMouse        TAG_USER+53
  439. #define LAWN_MoveToWindow    TAG_USER+54
  440. #define LAWN_AutoRefresh    TAG_USER+55
  441. #define LAWN_HelpHook        TAG_USER+73
  442. #define LAWN_Parent        TAG_USER+81
  443. #define LAWN_BlockParent    TAG_USER+82
  444. #define LAWN_SmartZoom        TAG_USER+91
  445. #define LAWN_Title        TAG_USER+92
  446. #define LAWN_TitleText        TAG_USER+92
  447. #define LAWN_Bounds        TAG_USER+93
  448. #define LAWN_ExtraWidth        TAG_USER+94
  449. #define LAWN_ExtraHeight    TAG_USER+95
  450. #define LAWN_IDCMP        TAG_USER+96
  451. #define LAWN_AlignWindow    TAG_USER+97
  452. #define LAWN_TitleID        TAG_USER+99
  453. #define LAWN_FlushLeft        TAG_USER+14000    /* NOTEZ-BIEN: TAG_USER+99 = WA_Dummy and can clash */
  454. #define LAWN_FlushTop        TAG_USER+14001    /*             with Intuition!                      */
  455. #define LAWN_Show        TAG_USER+14002
  456. #define LAWN_MenuTemplate    TAG_USER+14003
  457. #define LAWN_MenuTags        TAG_USER+14004
  458. #define LAWN_NoInitialRefresh    TAG_USER+164
  459. #define LAWN_LimitWidth        TAG_USER+165
  460. #define LAWN_LimitHeight    TAG_USER+166
  461. #define LAWN_UserData        TAG_USER+169
  462.  
  463. /* Private tags; do not use, or you'll run into trouble! */
  464. #define LA_Private1        TAG_USER+100
  465. #define LA_Private2        TAG_USER+101
  466.  
  467. /* Last tag item value used */
  468. #define LAST_TAG        TAG_USER+190
  469.  
  470.  
  471. /*****************************************************************************/
  472.  
  473.  
  474. /* Identifies the absence of a link for a listview or a string gadget */
  475. #define NIL_LINK (-2)
  476.  
  477.  
  478. /*****************************************************************************/
  479.  
  480.  
  481. /* String gadget type history hook support: you will either get
  482.  * the following value passed as the message parameter to your
  483.  * hook function, or a pointer to a null-terminated string you should
  484.  * copy and create a Node from, which you should then add to the tail
  485.  * of your history list. Place a pointer to your history list in the
  486.  * Hook.h_Data entry.
  487.  */
  488. #define HISTORYHOOK_DiscardOldest (0)
  489.  
  490.  
  491. /*****************************************************************************/
  492.  
  493.  
  494. /* Refresh hook support: you will get the following structure
  495.  * passed as the message and a pointer to the LayoutHandle as
  496.  * the object.
  497.  */
  498. typedef struct RefreshMsg
  499. {
  500.     LONG ID;
  501.     WORD Left;
  502.     WORD Top;
  503.     WORD Width;
  504.     WORD Height;
  505. } RefreshMsg;
  506.  
  507.  
  508. /*****************************************************************************/
  509.  
  510.  
  511. /* Incrementer hook support: you will get the current value
  512.  * passed as the object and one of the following values as
  513.  * the message. Return the number to be used.
  514.  */
  515. enum
  516. {
  517.     INCREMENTERMSG_Decrement = -1,    /* Decrement value */
  518.     INCREMENTERMSG_Initial   =  0,    /* Initial value passed upon gadget creation */
  519.     INCREMENTERMSG_Increment =  1    /* Increment value */
  520. };
  521.  
  522.  
  523. /*****************************************************************************/
  524.  
  525.  
  526. /* Help key hook support: the hook will be called with a "struct IBox *"
  527.  * as the object and a "struct HelpMsg *". The IBox describes the object
  528.  * the mouse was positioned over, such as a button, a listview, etc.
  529.  * The "ObjectID" will indicate the ID of the object the mouse was
  530.  * positioned over. The ID will be -1 if no object was to be found.
  531.  */
  532. typedef struct HelpMsg
  533. {
  534.     struct LayoutHandle *    Handle;        /* Window layout handle */
  535.     LONG            ObjectID;    /* ID of the object, -1 for full window */
  536. } HelpMsg;
  537.  
  538.  
  539. /*****************************************************************************/
  540.  
  541.  
  542. /* This selects whether ticks should be placed next to the body of
  543.  * a LEVEL_KIND object.
  544.  */
  545. enum
  546. {
  547.     TICKS_None  = 0,    /* No ticks please */
  548.     TICKS_Left  = 1,    /* Place ticks left of the slider (FREEVERT only) */
  549.     TICKS_Both  = 2        /* Place ticks on both sides of the slider */
  550. };
  551.  
  552. #define TICKS_Above TICKS_Left    /* Place ticks above the slider (FREEHORIZ only) */
  553.  
  554.  
  555. /*****************************************************************************/
  556.  
  557.  
  558. /* The central data structure of the layout process. */
  559. typedef struct LayoutHandle
  560. {
  561.     struct Screen *        Screen;
  562.     struct DrawInfo *    DrawInfo;
  563.     struct Window *        Window;
  564.     APTR            VisualInfo;
  565.     struct Image *        AmigaGlyph;
  566.     struct Image *        CheckGlyph;
  567.     APTR            UserData;    /* Requires gtlayout.library V9 */
  568.     struct Menu *        Menu;        /* Requires gtlayout.library V13 */
  569.  
  570.     /* Hands off, private fields follow.... */
  571. } LayoutHandle;
  572.  
  573.  
  574. /*****************************************************************************/
  575.  
  576.  
  577. /* Handy for LT_LevelWidth and LT_NewLevelWidth. Note: parameters must be passed
  578.  * over the stack.
  579.  */
  580. typedef LONG (* DISPFUNC)(struct Gadget *gad,LONG value,...);
  581.  
  582.  
  583. /*****************************************************************************/
  584.  
  585.  
  586. /* Useful macros */
  587. #define LT_GetString(Handle,Code)    ((STRPTR)LT_GetAttributesA((Handle),(Code),NULL))
  588.  
  589. #define LAMN_Menu_UserData(m)        (*(APTR *)(((struct Menu *)(m)) + 1))
  590. #define LAMN_Menu_ID(m)            (((ULONG *)(((struct Menu *)(m)) + 1))[1])
  591.  
  592. #define LAMN_Item_UserData(m)        (*(APTR *)(((struct MenuItem *)(m)) + 1))
  593. #define LAMN_Item_ID(m)            (((ULONG *)(((struct MenuItem *)(m)) + 1))[1])
  594.  
  595.  
  596. /*****************************************************************************/
  597.  
  598. #ifdef GTLAYOUT_OBSOLETE
  599. /* Obsolete tags, don't use in new code */
  600. #define LA_Lines        LABX_Rows
  601. #define LA_Spread        LAGR_Spread
  602. #define LA_SameSize        LAGR_SameSize
  603. #define LA_FullCheck        LASL_FullCheck
  604. #define LA_ExtraLabels        LALV_ExtraLabels
  605. #define LA_LastGadget        TAG_USER+28
  606. #define LA_SmallPalette        LAPA_SmallPalette
  607. #define LA_Labels        LALV_Labels
  608. #define LA_Picker        LATX_Picker
  609. #define LA_DrawBox        LAFR_DrawBox
  610. #define LA_FirstLabel        LABX_FirstLabel
  611. #define LA_LastLabel        LABX_LastLabel
  612. #define LA_LabelTable        LABX_LabelTable
  613. #define LA_Min            TAG_USER+23
  614. #define LA_Max            TAG_USER+24
  615. #define LA_Link            LALV_Link
  616. #define LA_Menu            LAWN_Menu
  617. #define LA_HistoryLines        LAST_HistoryLines
  618. #define LA_HistoryHook        LAST_HistoryHook
  619. #define LA_ReturnKey        LABT_ReturnKey
  620. #define LA_ExtraFat        LABT_ExtraFat
  621. #define LA_CursorKey        LALV_CursorKey
  622. #define STORE_BYTE        TAG_USER+63
  623. #define STORE_UBYTE        TAG_USER+64
  624. #define STORE_WORD        TAG_USER+65
  625. #define STORE_BOOL        TAG_USER+65
  626. #define STORE_UWORD        TAG_USER+66
  627. #define STORE_LONG        TAG_USER+67
  628. #define STORE_ULONG        TAG_USER+68
  629. #define STORE_STRPTR        TAG_USER+69
  630. #define LAHN_Font        TAG_USER+41
  631. #define LH_Font            TAG_USER+41
  632. #define LH_AutoActivate        TAG_USER+42
  633. #define LH_LocaleHook        TAG_USER+4
  634. #define LH_CloningPermitted    TAG_USER+61
  635. #define LH_EditHook        TAG_USER+74
  636. #define LH_ExactClone        TAG_USER+75
  637. #define LH_MenuGlyphs        TAG_USER+76
  638. #define LH_Parent        TAG_USER+83
  639. #define LH_BlockParent        TAG_USER+84
  640. #define LH_SimpleClone        TAG_USER+90
  641. #define LH_ExitFlush        TAG_USER+108
  642. #define LH_UserData        TAG_USER+116
  643. #define LH_RawKeyFilter        TAG_USER+142
  644.  
  645.  
  646. /* Obsolete defines, don't use in new code */
  647. #define PLACE_LEFT        PLACE_Left
  648. #define PLACE_RIGHT        PLACE_Right
  649. #define PLACE_ABOVE        PLACE_Above
  650. #define PLACE_IN        PLACE_In
  651. #define PLACE_BELOW        PLACE_Below
  652.  
  653. #define ALIGNTEXT_LEFT        ALIGNTEXT_Left
  654. #define ALIGNTEXT_CENTERED    ALIGNTEXT_Centered
  655. #define ALIGNTEXT_RIGHT        ALIGNTEXT_Right
  656. #define ALIGNTEXT_PAD        ALIGNTEXT_Pad
  657.  
  658. #define TDBT_BACKWARD        TDBT_Backward
  659. #define TDBT_FORWARD        TDBT_Forward
  660. #define TDBT_PREVIOUS        TDBT_Previous
  661. #define TDBT_NEXT        TDBT_Next
  662. #define TDBT_STOP        TDBT_Stop
  663. #define TDBT_PAUSE        TDBT_Pause
  664. #define TDBT_RECORD        TDBT_Record
  665. #define TDBT_REWIND        TDBT_Rewind
  666. #define TDBT_EJECT        TDBT_Eject
  667. #define TDBT_PLAY        TDBT_Play
  668.  
  669. #define ALIGNF_RIGHT        ALIGNF_Right
  670. #define ALIGNF_LEFT        ALIGNF_Left
  671. #define ALIGNF_TOP        ALIGNF_Top
  672. #define ALIGNF_BOTTOM        ALIGNF_Bottom
  673. #define ALIGNF_EXTRA_RIGHT    ALIGNF_ExtraRight
  674. #define ALIGNF_EXTRA_LEFT    ALIGNF_ExtraLeft
  675. #define ALIGNF_EXTRA_TOP    ALIGNF_ExtraTop
  676. #define ALIGNF_EXTRA_BOTTOM    ALIGNF_ExtraBottom
  677.  
  678. #define HISTORYHOOK_DISCARD_OLDEST    HISTORYHOOK_DiscardOldest
  679.  
  680. #define INCREMENTERMSG_DECREMENT    INCREMENTERMSG_Decrement
  681. #define INCREMENTERMSG_INITIAL        INCREMENTERMSG_Initial
  682. #define INCREMENTERMSG_INCREMENT    INCREMENTERMSG_Increment
  683.  
  684. /* Obsolete routines redone as macros. */
  685. #define LT_GetDrawInfo(Handle)        ((Handle != NULL) ? ((Handle)->DrawInfo)    : NULL)
  686. #define LT_GetVisualInfo(Handle)    ((Handle != NULL) ? ((Handle)->VisualInfo)    : NULL)
  687. #define LT_GetScreen(Handle)        ((Handle != NULL) ? ((Handle)->Screen)        : NULL)
  688. #define LT_SetAutoActivate(Handle,Mode)    LT_SetAttributes(Handle,0,LH_AutoActivate,Mode,TAG_DONE)
  689. #endif    /* GTLAYOUT_OBSOLETE */
  690.  
  691. /*****************************************************************************/
  692.  
  693.  
  694. #endif    /* _GTLAYOUT_H */
  695.